/*******************************************************************************
 * Copyright (c) 2009 Dop Sun.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * 
 * Contributors:
 *     Dop Sun - initial API and implementation
 ******************************************************************************/
package com.softao.ming.gde.internal.ui.launcher;

import org.eclipse.core.runtime.CoreException;
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;

/**
 * Block with a {@link Group} control.
 */
public abstract class AbstractGroupBlock implements ITabBlock {

	private final GwtLaunchTab mTab;
	
	/**
	 * @param tab the tab which owns current block.
	 */
	public AbstractGroupBlock(GwtLaunchTab tab) {
		mTab = tab;
	}
	
	@Override
	public void createControl(Composite parent) {
		Group group = new Group(parent, SWT.NONE);
		group.setText(getText());
		
		createContent(group);
	}

	/**
	 * @return text of the group.
	 */
	protected abstract String getText();
	
	/**
	 * Creates the content of this widget.
	 * @param parent
	 */
	protected abstract void createContent(Composite parent);
	
	/**
	 * @return the tab
	 */
	public GwtLaunchTab getTab() {
		return mTab;
	}
	
	@Override
	public void initializeFrom(ILaunchConfiguration configuration) throws CoreException {
	}

	@Override
	public void performApply(ILaunchConfigurationWorkingCopy configuration) {
		
	}

	@Override
	public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {
		
	}
}
